package org.robot.component;

import java.util.ArrayList;
import java.util.stream.IntStream;

public class Regulation extends ArrayList<Rule> {
	private static final long serialVersionUID = 1L;

	/**
	 * 获取要应用在当前页面的规则，不存在返回null<br>
	 * 手动添加应该也要先指定type的，不过现在不好改，只有改这个方法<br>
	 * 传进来的type和rule中的type依次比较，如果没有一个相同的就说明传进来的type是手动添加的
	 * @author pdz
	 * @date 2019年1月29日
	 * @param isSeed
	 * @param type 当前页面的type
	 * @return
	 */
    public Rule getRule(boolean isSeed, String type) {
    	if (isSeed)
    		return isEmpty() ? null : get(0);
    	else {
    		int index = IntStream.range(0, size()).filter(i -> type.equals(get(i).getType())).findAny()
    				.orElseGet(() -> IntStream.range(0, size()).filter(j -> get(j).isAddByHand()).findAny().getAsInt());
    		return index < size() - 1 ? get(index + 1) : null;
    	}
    }
    
}
